package com.ft.oa.domain.project;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ft.oa.enums.ExecProjectTaskTypeEnum;
import com.ft.oa.utils.SecurityUtils;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.time.LocalDateTime;

/**
 * 立项项目任务表实体
 * @author hefeng
 * @ClassName execProjectTask
 * @date 2022/1/6 16:40
 */

@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName(value = "exec_project_task",autoResultMap = true)
public class ExecProjectTask {

    /**
     * 主键id
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 立项项目id
     */
    private Long execProjectId;

    /**
     * 所属立项项目名称
     */
    private String execProjectName;

    /**
     * 立项子项目id
     */
    private Long execSubProjectId;

    /**
     * 所属立项子项目名称
     */
    private String execSubProjectName;

    /**
     * 类型:0平台、1系统、2组件、3模块、4功能点
     */
    private ExecProjectTaskTypeEnum type;

    /**
     * 任务名称
     */
    private String name;

    /**
     * 任务描述
     */
    private String remark;

    /**
     * 任务负责人id
     */
    private Long responsibilityUserId;

    /**
     * 任务负责人名称
     */
    private String responsibilityUserName;

    /**
     * 任务紧急程度 1一般 2紧急 3非常紧急
     */
    private Integer urgentLevel;

    /**
     * 任务重要程度 1一般 2重要 3非常重要
     */
    private Integer importantLevel;

    /**
     * 任务进度
     */
    private Integer progress;

    /**
     * 任务开始时间
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss")
    private LocalDateTime startDate;

    /**
     * 任务结束时间
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss")
    private LocalDateTime endDate;

    /**
     * 附件表id
     */
    private Long aid;

    /**
     * 创建人id
     */
    private Long creator = SecurityUtils.getCurrentUser().getId();

    /**
     * 创建时间
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime = LocalDateTime.now();

    /**
     * 修改时间
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime = LocalDateTime.now();

    /**
     * 是否删除:0否,1是
     */
    private Integer del;

}
